package com.siburian.MyStuff;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.content.Intent;
import android.widget.EditText;
import android.widget.TextView;
import java.util.*;

public class PlayWithMathematic3 extends Activity {
	Button nextBilanganLoncat;
	Bintang dbStar;
	Profil_Stat data_profil;
	int batasAtas = 100;
	EditText hasilBilanganLoncat;
	TextView soalGenerateBilanganLoncat;
	int[][] bilanganLoncat;
	int[] hasilSebenarnya;
	int[] jawabanAnak;
	int bilanganRandom = 0;
	int jumlahSoal;
	int tempRandom = 0;
	int countAdapter = 0;

	public void onCreate(Bundle as) {
		super.onCreate(as);
		dbStar = new Bintang(this);
        data_profil = new Profil_Stat(this);
		jumlahSoal = 5;
		hasilSebenarnya = new int[jumlahSoal];
		bilanganLoncat = new int[jumlahSoal][5];
		jawabanAnak = new int[jumlahSoal];
		setContentView(R.layout.play_mathematic3);
		nextBilanganLoncat = (Button) findViewById(R.id.btnExecuteBilanganLoncat);
		hasilBilanganLoncat = (EditText) findViewById(R.id.txtResultBilanganLoncat);
		soalGenerateBilanganLoncat = (TextView) findViewById(R.id.txtQuestionBilanganLoncat);
		Random generator = new Random();
		for (int i = 0; i < jumlahSoal; i++) {
			tempRandom = generator.nextInt(batasAtas);
			bilanganRandom = generator.nextInt(20);
			bilanganLoncat[i][0] = tempRandom;
			for (int j = 1; j < 5; j++) {
				bilanganLoncat[i][j] = bilanganLoncat[i][j - 1]
						+ bilanganRandom;
			}
			hasilSebenarnya[i] = bilanganLoncat[i][4] + bilanganRandom;
		}
		Toast.makeText(
				getBaseContext(),
				"hasil yang didapat  : "
						+ printSingleString(hasilSebenarnya),
				Toast.LENGTH_LONG).show();
		
		soalGenerateBilanganLoncat.setText("Nilai selanjutnya dari bilangan "
				+ convertArrayToString(bilanganLoncat, 0));
		nextBilanganLoncat.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				jawabanAnak[countAdapter] = Integer
						.parseInt(hasilBilanganLoncat.getText().toString());
				// TODO Auto-generated method stub
				if (hasilBilanganLoncat.getText().toString().equals("")) {
					Toast.makeText(getBaseContext(),
							"Silahkan masukkan jawaban terlebih dahulu",
							Toast.LENGTH_LONG).show();
				} else {
					
					if (jawabanAnak[jumlahSoal - 1] != 0) {
						Toast.makeText(
								getBaseContext(),
								"Nilai yang didapat  : "
										+ getResultFromTest(jawabanAnak,
												hasilSebenarnya),
								Toast.LENGTH_LONG).show();
						if(dbStar.getJumlah(ListProfil.profileID, ListBab.idBab, ChooseKelas.kelasSiswa, ListBelajar.typeStudy) == 0){
							dbStar.insertDataBintang(ListProfil.profileID, ListBab.idBab, ChooseKelas.kelasSiswa, ListBelajar.typeStudy, getResultFromTest(jawabanAnak,
									hasilSebenarnya));
							data_profil.addProfile(ListProfil.profileID, ChooseKelas.kelasSiswa, ListBelajar.typeStudy, ListBab.idBab, getResultFromTest(jawabanAnak,
									hasilSebenarnya));
						}
						if(dbStar.getJumlah(ListProfil.profileID, ListBab.idBab, ChooseKelas.kelasSiswa, ListBelajar.typeStudy) != 0){
							data_profil.addProfile(ListProfil.profileID, ChooseKelas.kelasSiswa, ListBelajar.typeStudy, ListBab.idBab, getResultFromTest(jawabanAnak,
									hasilSebenarnya));
							if(dbStar.getJumlah(ListProfil.profileID, ListBab.idBab, ChooseKelas.kelasSiswa, ListBelajar.typeStudy) < getResultFromTest(jawabanAnak,
									hasilSebenarnya)){
								dbStar.updateBintang(ListProfil.profileID, ListBab.idBab, ChooseKelas.kelasSiswa, ListBelajar.typeStudy, getResultFromTest(jawabanAnak,
										hasilSebenarnya));
							}
						}
						Intent inte = new Intent(PlayWithMathematic3.this,
								ChooseMenu.class);
						startActivity(inte);
					} else {
						countAdapter++;
						soalGenerateBilanganLoncat
								.setText("Nilai selanjutnya dari bilangan "
										+ convertArrayToString(bilanganLoncat,
												countAdapter));
						hasilBilanganLoncat.setText("");
					}
				}
			}
		});
	}

	public String convertArrayToString(int[][] nama, int indexData) {
		String bilanganConversi = "";
		for (int i = 0; i < nama[indexData].length; i++) {
			bilanganConversi += nama[indexData][i] + " ";
		}
		return bilanganConversi;
	}
	public String convertArrayToTest(int[] nama, int[] indexData) {
		String bilanganConversi = "";
		for (int i = 0; i < nama.length; i++) {
			bilanganConversi += nama[i] + " ";
		}
		bilanganConversi += " dan sebenarnya ";
		for(int i = 0;i<indexData.length;i++){
			bilanganConversi += indexData[i] + " ";
		}
		return bilanganConversi;
	}

	public int getResultFromTest(int[] jawabanAnak, int[] jawabanSistem) {
		int nilaiAkhir = 0;
		for (int i = 0; i < jawabanSistem.length; i++) {
			if (jawabanSistem[i] == jawabanAnak[i]) {
				nilaiAkhir += 10;
			}
		}
		return nilaiAkhir;
	}
	public String printSingleString(int[] printData){
		String data ="";
		for(int i = 0;i<printData.length;i++){
			data += printData[i];
		}
		return data;
	}
}
